The present invention relates to electromagnetic actuators, and, more particularly, to control of a Voice Coil Motor (VCM).
Voice coil motors are used in several applications and in particular in Hard Disk Drive systems (HDD) to load or unload a read/write head onto the disk. When the disk is stopped, it is necessary to drive the mechanic arm supporting the read/write head in a safe position away from the disk, in order to reduce the possibility that vibrations of the head, during its non-operative time, will damage the disk. Such an operation is called xe2x80x9cramp unloadingxe2x80x9d. The inverse operation (xe2x80x9cramp loadingxe2x80x9d) must be carried out when the HDD is turned on to read/write data stored in the disk.
During the ramp loading or unloading, the speed of the arm can be controlled by varying the mean voltage applied in a PWM period to the voice coil motor. Excessive voltages must be avoided because they could overdrive the read/write head, and damage it. To avoid such a problem, it is necessary to regulate the speed of the arm. The speed of the arm can be measured by measuring the back electromotive force (BEMF) of the motor. In fact, the BEMF produced in the motor by the motion of the arm is proportional to the speed of the arm according to the following relation:
BEMF=Kexc2x7xcfx89=Ke/armlengthxc2x7speed
wherein Ke is a constant.
In systems driven in discontinuous mode, the bridge stage driving the motor alternately sets the motor in conduction state and in a high impedance state. So, when the motor is in high impedance state and the current flowing in the motor is equal to zero, the BEMF of the motor can be measured as the voltage drop on the control nodes of the motor.
Known ramp loading systems periodically measure the speed of the read/write head and compare it to the value of the desired speed. Depending on the result of this comparison, the motor is fed with a current pulse of a pre-established amplitude, to correct the speed of the arm. This correction causes the speed of the arm to vary around the desired speed value within a certain interval, whose amplitude (xe2x80x9cspeed ripplexe2x80x9d) determines the precision of the regulation. If the current pulse provided to the motor is too strong, the speed variation, and thus the speed ripple, is large, thus allowing only a coarse regulation.
The speed of the arm is not constant but varies around its mean value because of the variability of the friction affecting the arm. A sudden reduction of the friction could make the current pulse provided to the motor overdrive the arm, making the speed of the arm greatly overcome the desired value. On the contrary, an increase of the friction could make the provided current pulse not suitable to have the arm move with the desired speed.
All mentioned drawbacks would be avoided, or greatly reduced, by a ramp loading system able to provide current pulses whose amplitudes vary depending on the difference between the desired speed and the effective speed of the arm. A system for driving a motor providing large current pulses when the speed greatly differs from the desired speed and providing small current pulses when the speed is close to the desired value is needed.
A method of controlling a motor driving a mechanical arm, and a related circuit, that greatly reduces the speed ripple of the arm is provided. The method of the invention allows very precise control of the speed of the arm, avoiding the above described drawbacks, by feeding the motor with current pulses whose amplitudes are calculated as a function of the absolute difference between the desired speed and the effective speed of the arm, according to a nonlinear relation.
More precisely an object of the present invention is a method of controlling a voice coil motor driving a swinging arm via a control circuit. The control circuit includes means for setting the output nodes, to which the motor is connected for a certain time interval, in a high impedance state, means for detecting the back electromotive force induced on the motor winding during the time interval, and means for delivering current pulses for driving the motor. The method of the invention includes comparing the detected back electromotive force with a certain target value and regulating the amplitude of the driving current pulses as a function of the difference between the detected value of the back electromotive force and a voltage signal representing the desired speed of the arm, according to a pre-established function. A preferred embodiment of the method of the invention includes such a function being a pre-established saturated linear characteristic with offset value.
Another object of the invention is to provide a circuit for controlling a voice coil motor driving a mechanical arm comprising first means for setting control nodes of the motor in a high impedance state or in a conduction state depending on the value of a logic signal, and second means for detecting the back electromotive force of the motor during a high impedance state, for producing a logic signal that indicates whether or not the detected back electromotive force exceeds a voltage signal representing the desired speed of the arm, and for producing a control voltage whose value is calculated as a function of the value of the difference between the back electromotive force and the voltage value representative of the desired speed of the arm, according to a saturated linear characteristic with a certain offset.
Also, the circuit includes a controller coupled to the control nodes of the motor, being input with the logic signal, with a voltage drop across a sensing resistance in series with the motor and with the control voltage, for storing the control voltage when the current flowing in the motor in a high impedance state becomes zero, comparing the stored control voltage with an amplified replica of the voltage drop when the motor is in the successive conduction state, and producing a flag signaling whether the amplified replica exceeds the stored control voltage or not. The enable-disable signal sets the motor in the high impedance state or in the conduction state.